package com.smart.entity;

import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import cn.hutool.core.date.DatePattern;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;

/**
 * @author lgb
 * @date 2020年6月11日 下午4:39:31
 * Copyright (C) 深圳工勘科技
 * @说明: 部门表
 **/
@Data
@NoArgsConstructor
@TableName("sys_dept")
@EqualsAndHashCode(callSuper=true)
public class SysDept extends Model<SysDept>{
	
	private static final long serialVersionUID = -138992142408764302L;
	
	@TableId
    @ApiModelProperty(value="id")
    private Long id;
    /** 名称 */
    @ApiModelProperty(value="名称")
    private String name;
    /** 上级部门 */
    @ApiModelProperty(value="上级部门")
    private Long pid;
    /** 启用状态：0->禁用；1->启用 */
    @ApiModelProperty(value="启用状态：0->禁用；1->启用")
    private String status;
    /** 祖级列表 */
    @ApiModelProperty(value="祖级列表")
    private String ancestors;
    /** 排序 */
    @ApiModelProperty(value="排序")
    private Integer sort;
    /** 负责人 */
    @ApiModelProperty(value="负责人")
    private String leader;
    /** 联系电话 */
    @ApiModelProperty(value="联系电话")
    private String phone;
    /** 邮箱 */
    @ApiModelProperty(value="邮箱")
    private String email;
    /** 创建时间 */
    @JsonFormat(pattern=DatePattern.NORM_DATETIME_PATTERN,timezone="GMT+8")
    @ApiModelProperty(value="创建时间")
    private Date createTime;
    /** 修改时间 */
    @JsonFormat(pattern=DatePattern.NORM_DATETIME_PATTERN,timezone="GMT+8")
    @ApiModelProperty(value="修改时间")
    private Date modifyTime;
    /** 有效状态：0->无效；1->有效 */
    @TableLogic
    @ApiModelProperty(value="有效状态：0->无效；1->有效")
    private Integer valid;
    /** 子部门 */
    @TableField(exist=false)
    private List<SysDept> children=new ArrayList<>();

}